1) Field of the Invention
The present invention relates to a technology to reproduce information by performing an error correction decoding of a signal sequence read from a recording medium on which error-correcting-coded information is recorded, with improved decoding performance, without increasing a power consumption and data readout delay.
2) Description of the Related Art
Recently, a repetitive decoding method having high decoding performance is getting an attention as a decoding method for a magnetic recording/reading apparatus, as compared with a conventional Viterbi decoding method (see, for example, “Turbo decoding for partial response channels, T. Souvignier, M. Oberg, P. Siegel, R. Swanson, and J. Wolf, IEEE Transactions Communications, August 2000, Vol.48, No.8, pp. 1297-1308”, “Coding and iterative detection for magnetic recording channels, Z. Wu, Kluwer Academic Publishers, 2000”, and “A study of iterative decoding with noise prediction, Ichihara, Sugawara, Satoh, and Morita, IEICE, Technical Report, MR2001-85, December 2001, pp. 9-14”). FIG. 9 is a block diagram of a conventional repetitive-decoding-type magnetic recording/reading apparatus.
As shown in the figure, user data consisting of a binary pattern of [0, 1] transmitted from a host computer 10 is input to a hard disk controller 20, and encoded by a cyclic redundancy check codes (CRC) encoder 21 for error mis-correction detection and an error correcting code (ECC) encoder 22 for error correction.
The code sequence encoded by the ECC encoder 22 is input to a read channel 30, encoded by a run length limited (RLL) encoder 31 so as to enable timing correction at the time of reproduction in a phase locked loop (PLL), and an RLL code sequence ui (i=1 to m) obtained by encoding is input to an external encoder 32.
The RLL code sequence ui input to the external encoder 32 is encoded into a recording sequence xk (k=1 to n), and the recording sequence xk is magnetically recorded and reproduced via a head/medium 40, and shaped to a desired waveform by an equalizer 33. The external encoder 32 performs encoding by using a turbo code or a low density parity check (LDPC) code, which enable repetitive decoding using reliability information (probability information whether any bit is “0” or “1”).
A magnetic recording/reading channel comprising the head/medium 40 and the equalizer 33 can be regarded as an encoder, which converts the external encoder output into an output of the magnetic recording/reading channel, and is referred to as an internal encoder.
The reliability information Λ(xk) with respect to the recording sequence xk is calculated by an internal code decoder 34 corresponding to the internal encoder, from an equalizer output sequence yk (k=1 to n) output from the equalizer 33, and external information Λe(xk)=Λ(xk)−Λa(xk) is calculated from the reliability information Λ(xk) and the prior information Λa(xk) obtained prior to decoding.
The calculated external information Λe(xk) is input to an external code decoder 35 as the prior information Λa(u′i) with respect to a maximum a posteriori decoding sequence u′i, to calculate the reliability information Λ(u′i) with respect to the maximum a posteriori decoding sequence u′i. It is then checked whether the reliability information Λ(u′i) calculated by the external code decoder 35 satisfies a predetermined iteration termination condition.
As a result, when the predetermined iteration termination condition is not satisfied, the external information Λe(u′i) with respect to the maximum a posteriori decoding sequence u′i is calculated, and the prior information Λa(xk) with respect to the recording sequence xk is calculated from the external information Λe(u′i), and returned to the internal code decoder 34.
Calculation of the reliability information Λ(xk) by the internal code decoder 34 and calculation of the reliability information Λ(u′i) by the external code decoder 35 are then repeated. When the predetermined iteration termination condition is satisfied, binary decision, whether “0”or “1”, is performed with respect to the reliability information Λ(u′i) is performed, and the maximum a posteriori decoding sequence u′i is output by the external code decoder 35.
In this manner, high-performance decoding is performed by using the internal code decoder 34 and the external code decoder 35 to repetitively calculate the reliability information Λ(xk) and the reliability information Λ(u′i) in the repetitive decoding method.
The maximum a posteriori decoding sequence u′i output by the external code decoder 35 is transmitted to an RLL decoder 36 to be RLL-decoded, and an RLL decoding sequence output by the RLL decoder 36 is subjected to error correction by an ECC decoder 23, and further subjected to error correction check by a CRC detector 24, and reproduced as user data.
However, since it is necessary to repetitively calculate data for one sector (e.g. 512 bytes) by using a plurality of internal and external code decoders 34 and 35, in order to perform high-performance decoding, the repetitive decoding has such problems that the hardware quantity increases, and the power consumption and data readout delay also increase.
On the other hand, when the repetition number is decreased to reduce the power consumption and data readout delay, the decoding performance deteriorates, and it becomes necessary to make the length of a check bit of the ECC longer in order to supplement the performance deterioration. As a result, a recording area for a data bit decreases, and the data recording density decreases.